# 构造15个学生键值对{姓名: 分数}，存入学生字典，如: dct。姓名用'A"，"B'....."0"对应，分数为[35，100]之间的随机整数，输出学生字典 ;
import random
name = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']
dct = {}
for a in name:
    dct[a] = random.randint(35, 100)
print("学生成绩:", dct)
# 按照学生成绩降序排列输出字典
dct1 = sorted(dct.items(), key=lambda x: x[1], reverse=True)
print("学生成绩降序排列:", dct1)

# 计算学生成绩平均分、最大值、最小值（注意，小数点保留2位有效数字，居中对齐）
score = list(dct.values())
print("平均分:{:.2f}".format(sum(score) / len(score)))
print("成绩最大值:", max(score))
print("成绩最小值:", min(score))

# 统计不及格人数的个数
fail = 0
for b in score:
    if b < 60:
        fail += 1
print("不及格人数:{}".format(fail))

# 输入学生名字，如W，输出学生对应的分数。
average = sum(score) / len(score)
while True:
    xx = input("请输入学生名字:")
    if xx in dct:
        stu_score = dct[xx]
        if stu_score > average:
            print("该生成绩属于上等水平。")
        elif stu_score < average:
            print("该生成绩属于下等水平。")
        else:
            print("该生成绩属于中等水平。")
        n = input("是否继续查询(请输入yes/no):")
        while n != 'yes' and n != 'no':
            n = input("对不起，您输入的格式有误,请再输入一次(请输入yes/no):")
        if n == 'yes':
            continue
        elif n == 'no':
            print('感谢您的查询')
            break
    else:
        print("请输入正确的学生姓名")
